package com.ProtocalAndUdp;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Handler;
import android.os.Message;


public class TimerTest {
	/**
	 * 定义定时器
	 */
	private Timer timer = new Timer();
	/**
	 * 定时器任务
	 */
	private TimerTask task;
	/**
	 * Handler句柄
	 */
	Handler handler ;
	/**
	 *记录最近一次心跳包时间
	 */
	Date lastTime=null;
	/**
	 * 两次心跳包没收到的时间间隔
	 */
	long distanceTime=10000;
	/**
	 * 创建句柄
	 */
	public void CreaHander(){
		handler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			//要做的事情
				if(lastTime==null)//心跳包还没有上报
					return;
			long diff=(new Date()).getTime()- lastTime.getTime();
			if(diff>distanceTime+100)//加上网络延时
			{
				//将网络状态改为断开状态，改图标
			}
			else{
				//状态正常
			}
			lastTime=new Date();
			super.handleMessage(msg);
			}
		};
	}

	/**
	 * 初始化计时器任务
	 */
	public void CreatTimerTask(){
	task = new TimerTask() {
			@Override
			public void run() {
			// TODO Auto-generated method stub
			Message message = new Message();
			message.what = 1;
			handler.sendMessage(message);
			}
		};
	}

	/**
	 * 启动定时器
	 */
	public void startTimer(){
		if(timer==null)
			timer=new Timer();
		CreatTimerTask();
		CreaHander();
		timer.schedule(task, 100, 100);
	}
	
	/**
	 * 关闭定时器
	 */
	public void stop(){
	 if(timer!=null){
	        timer.cancel();
	        timer.purge();
//	        timer=null;
	 }
	}

	public static void main(String[] args) {
		TimerTest time=new TimerTest();
		time.startTimer();
		
	}
}
